Nová tabulka ze select-u

Otázka od: Ing. Peter Kurek

2. 10. 2002 15:54

Jsem zacatecnik v DELPHI, prosim poradit.


Delam vyber z tabulky, ktery chci ulozit do nove tabulky.
Puvodni databaze se sklada z plateb za balik, pricemz za balik je zaplaceno
nekolik castek. Potrebuji vyslednou tabulku, kde je jenom celkova cena
zaplacena za balik a baliky jsou serazeny vzestupne.
Kdyz provedu select, vyber se mi podle pozadavku zobrazi v DBGrid.

  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select b.Balik, SUM(b.Kc) from D_Knihabaliku a');
  Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
  Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
  Query2.SQL.Add('group by b.Balik');
  Query2.SQL.Add('order by b.Balik');
  Query2.Open;

Kdyz vsak chci tento vyber uložit do nove tabulky, select se neprovede a dojde
k zastaveni s hlasenim 'Type mismatch in expression'. Chybu delam v definovani
a funkce SUM(b.Kc), ???

  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('insert into D_Rozpr');
  Query2.SQL.Add('select b.Balik, sum(b.Kc) from D_Knihabaliku a');
  Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
  Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
  Query2.SQL.Add('group by b.Balik');
  Query2.SQL.Add('order by b.Balik');
  Query2.ExecSQL;


Dekuji za pripadnou pomoc, Peter

P. Kurek
PROFTEX, a. s.
Tržní čp. 282
386 01 Strakonice
tel: 383 321 248
info@proftex.cz


---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.393 / Virová báze: 223 - datum vydání: 30.09.02

Odpovedá: Bohdan Dudla

2. 10. 2002 17:15

Musis uvest pole do kterych prijdou hodnoty:


  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('insert into D_Rozpr (Balik, Suma)');
********************************************************************************
  Query2.SQL.Add('select b.Balik, sum(b.Kc) from D_Knihabaliku a');
  Query2.SQL.Add('left join D_Vykony b on (a.Balik = b.Balik)');
  Query2.SQL.Add('where a.Datum <= "' + MaskEdit1.Text + '" and a.Expedice > "'
+ MaskEdit1.Text + '" and b.Datum <= "' + MaskEdit1.Text + '"');
  Query2.SQL.Add('group by b.Balik');
  Query2.SQL.Add('order by b.Balik');
  Query2.ExecSQL;


With best regards,
Bohdan Dudla
 
Pike Electronic spol. s r.o.
Modrinova 2
300 00 Plzen
Czech Republic
 
tel: +420 19 72 40 738
fax: +420 19 74 31 738
gsm: +420 732 441 716
e-mail: bdudla@pikeelectronic.com